validity logic